/*
 * MyBank.cn Inc.
 * Copyright (c) 2015-2021 All Rights Reserved.
 */
package me.caosh.util.factory;

import java.lang.annotation.*;

/**
 * 标记一个Bean为实现某组件接口的工厂组件。系统将按组件接口维度自动创建工厂，该工厂按其内部的组件key获取实现组件接口的组件实例
 *
 * @author mujiang.csh
 * @version v0.1, created at 2021/8/7 17:45
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
public @interface FactoryComponent {
    /**
     * 组件接口
     *
     * @return 组件接口
     */
    Class<?> componentInterface();

    /**
     * 组件key
     *
     * @return 组件key
     */
    String componentKey();
}